//Name: Abstract Quest
//Author:Max Charnock
//Last Updated: 15/05/2014
//Purpose: abstract quest class which is inherited by other quests

#pragma once
#include "MathHelper.h"


class AbstractQuest
{
protected:

	//bool used by quests to dtermine whether they have been completed
	bool IsCompleted;

	//bool used to check is player has failed the quest
	bool Failed;

	//time limit for quests use to determine whethera quest has failed
	float TimeLimit;

	float InitialTimeLimit;

public:

	AbstractQuest();
	~AbstractQuest();

	//gets and sets for is completed
	bool GetIsCompleted();
	void SetIsCompleted(bool complete);

	//gets and sets for failed
	bool GetFailed();
	void SetFailed(bool fail);

	float GetTimeLimit() {return TimeLimit;};

	//sets the quests intial values
	virtual void Intialise()=0;

	//updates the quests values and checks the completon parameters
	virtual void Update(float delta,XMFLOAT3 playerpos)=0;
};